一、设备物模型详解
物模型从属性、服务和事件三个维度,分别描述了其在物理空间中指代的实体是什么,能够做什么,能够对外提供哪些信息。从这三个维度定义好产品相应的物模型之后,也代表定义好了该产品的功能定义。在完成产品功能定义后,系统将自动生成该产品的物模型。
当设备的物模型发生变化,若设备已经连接到云端,那物模型的变化将会通过物联云平台提供的硬件 XAPP SDK,同步到云端上,以便厂商在云平台查看与收集设备的运行状态的变化。
1、物模型的智能转换
XAPP SDK 中提供了一个创建服务及属性的对象TMLAttributeRequestBuilder,只需要在addInput方法传入id和value,通过toJsonString可以转换物模型协议中所需要的json数据
String content = new TMLAttributeRequestBuilder()
.addInput("scene_id", sceneId)
.toJsonString();
Task task = XLinkTMLInvokeServiceTask.newBuilder()
.setSendPolicy(XLinkSendDataPolicy.LOCAL_ONLY)
.setXDevice(device)
.setTmlServiceName(ProtocolConstant.TML_SERVICE_EXECUTE_SCENE)
.setTmlDataPayload(content)
.setListener(new TaskListenerAdapter<XLinkTMLServiceInvoke>() {
@Override
public void onError(Task<XLinkTMLServiceInvoke> task, Throwable error) {
super.onError(task, error);
System.err.println("服务调用失败了" + error.toString());
}
@Override
public void onComplete(Task<XLinkTMLServiceInvoke> task, XLinkTMLServiceInvoke result) {
super.onComplete(task, result);
System.err.println("服务调用成功了" + result);
}
})
.build();
XLinkSDK.startTask(task);